#include "uart_app.h"
typedef struct __FILE FILE;
void Uart0_Sendbyte(uint8_t data)
{
    USART_SendData(HT_UART0, data);
    while (USART_GetFlagStatus(HT_UART0, USART_FLAG_TXDE) == RESET)
        ;
}
void Uart0_SendStr(uint8_t *str)
{
    uint8_t i;
    for (i = 0; str[i] != '\0'; i++)
    {
        Uart0_Sendbyte(str[i]);
    }
}
void Uart1_Sendbyte(uint8_t data)
{
    USART_SendData(HT_UART1, data);
    while (USART_GetFlagStatus(HT_UART1, USART_FLAG_TXDE) == RESET)
        ;
}
void Uart1_SendStr(uint8_t *str)
{
    uint8_t i;
    for (i = 0; str[i] != '\0'; i++)
    {
        Uart1_Sendbyte(str[i]);
    }
}
void Uart1_SendStr_utf8(const uint8_t *str)
{
    // 发送字符串内容（UTF-8 兼容）
    while (*str != '\0')
    {
        Uart1_Sendbyte(*str);
        str++;
    }

    // 自动追加回车换行（\r\n）
    Uart1_Sendbyte('\r');
    Uart1_Sendbyte('\n');
}
//syn8089
// 发送单个字节
void Usart1_Sendbyte(uint8_t data)
{
  USART1_tx_data(&data, 1);
}

//-----------------------------------------------------------------------------
// 发送字符串
void Usart1_SendStr(uint8_t *str)
{
  while (*str)
  {
    Usart1_Sendbyte(*str++);
  }
}

// 串口接收跳线帽要接到RS232上
void UART0_IRQHandler(void) // 串口0中断
{
    if (USART_GetFlagStatus(HT_UART0, USART_FLAG_RXDR)) // 接收中断
    {
        uint8_t dat = USART_ReceiveData(HT_UART0); // 读取接收到的数据
                                              // printf("Received data: %c\n", data0);
        sim800l_receive_callback(dat);
    }
    USART_ClearFlag(HT_UART0, USART_FLAG_RXDR);
}
void UART1_IRQHandler(void) // 串口0中断
{
    if (USART_GetFlagStatus(HT_UART1, USART_FLAG_RXDR)) // 接收中断
    {
        uint8_t dat = USART_ReceiveData(HT_UART1); // 读取接收到的数据
                                              // printf("Received data: %c\n", data0);
        wifi_receive_callback(dat);
    }
    USART_ClearFlag(HT_UART1, USART_FLAG_RXDR);
}

void USART0_IRQHandler(void) // 串口1中断
{
    if (USART_GetFlagStatus(HT_USART0, USART_FLAG_RXDR)) // 接收中断
    {
        uint8_t dat = USART_ReceiveData(HT_USART0); // 读取接收到的数据
                                              // printf("Received data: %c\n", data0);
		asr_pro_callback(dat);
    }
    USART_ClearFlag(HT_USART0, USART_FLAG_RXDR);
}
